修改个人中心背景图头像基本数据

版权声明: https://blog.csdn.net/LMlikoSakura/article/details/82802177

写一个简单的个人中心的实例

 今天主要介绍背景和头像图片的修改,还有个人信息的修改

首先写一个input

            <input id="banner_bg_file" type="file" onchange="chooseImg(this)" hidden>

然后配合点击事件与图片函数将本体图片上传达到修改的效果

banner_bg_change.addEventListener('click', function () {
    var banner_bg_file = document.getElementById('banner_bg_file')
    banner_bg_file.click()
})

function chooseImg(file) {
    var file = file.files[0]
    var reader = new FileReader()
    reader.readAsDataURL(file)
    reader.onload = function () {
        console.log(this.result)
        banner_bg.style.background = 'url(' + this.result + ')'
        banner_bg.style.backgroundSize = '100%'
        banner_bg.style.backgroundPosition = 'center center'
    }
}

然后就是个人信息的修改,点击信息修改按钮就会变化为取消和保存按钮

 

同时信息显示变为placeholder状态,并且第一个信息获得焦点,账号无法修改

点击取消回到原来状态,保存及保存当时的信息

 

信息显示为readonly状态,

代码为:

change_user_msg.addEventListener('click', function () {
    console.log('fn tset begin')
    change_user_msg_cancel_btn.style.display = 'inline'
    // change_user_msg_cancel_btn.removeAttribute('hidden')
    change_user_msg_submit_btn.style.display = 'inline'
    changeMsgInput(oInput)
    change_user_msg.style.display = 'none'
})
//提交
change_user_msg_submit_btn.addEventListener('click', function () {
    // console.log(old_msg)//旧的信息
    // console.log(old_msg[1])//账号
    // 切换为新的信息
    var new_msg = new Array()
    var nInput = document.getElementById('user_msgs').getElementsByTagName('input')
    for (let i = 0; i < nInput.length; i++) {
        if (nInput[i].value == '') {
            new_msg[i] = old_msg[i]
        } else {
            new_msg[i] = nInput[i].value
        }
    }
    cancelMsgChange(oInput, new_msg)
    //向后发起请求将数据修改
    change_user_msg_cancel_btn.style.display = 'none'
    // change_user_msg_cancel_btn.removeAttribute('hidden')
    change_user_msg_submit_btn.style.display = 'none'
    change_user_msg.style.display = 'inline'

})
// 取消
change_user_msg_cancel_btn.addEventListener('click', function () {
    // console.log(old_msg)
    cancelMsgChange(oInput, old_msg)
    change_user_msg_cancel_btn.style.display = 'none'
    // change_user_msg_cancel_btn.removeAttribute('hidden')
    change_user_msg_submit_btn.style.display = 'none'
    change_user_msg.style.display = 'inline'

})
//获得修改
function changeMsgInput(arg) {
    var index = arg.length
    for (let i = 0; i < index; i++) {
        old_msg[i] = arg[i].value
        if (i !== 1) {
            arg[i].placeholder = arg[i].value
            arg[i].value = ''
            arg[i].removeAttribute('readonly')
        }
    }
    arg[0].focus()
}
//还原
function cancelMsgChange(arg, old) {
    var index = arg.length
    for (let i = 0; i < index; i++) {
        if (i !== 1) {
            arg[i].value = old[i]
            arg[i].setAttribute('readonly', 'readonly')
        }
    }
    // arg[0].focus()
}

 所有的代码均使用原生js实现,功能比较简单。希望能为初学者起到帮助的作用。

猜你喜欢

转载自blog.csdn.net/LMlikoSakura/article/details/82802177