javascript - 使用javascript添加图像后浏览器滚动条移位
问题描述
我有一个带有图片上传的活动创建页面。选择图像后,图像会在浏览器中预览。添加图像后滚动时,我看到底部滚动条停留在屏幕中间,直到我专注于输入元素。例如,当我专注于描述文本区域时,中间的滚动条就会消失。
工作版本在 jsbin 中,尝试多次选择图像。jsbin中的问题:
https://jsbin.com/wigawededo/1/edit?html,css,js,输出
我的电脑上的问题:
选择图像后,我使用以下代码对其进行预览:
function showImage() {
var imageSelector = document.getElementById("image");
var image = document.getElementById("image").files[0];
var reader = new FileReader();
reader.onload = function(e) {
const prevImage = document.querySelector("#previewImage");
if (prevImage) prevImage.parentNode.removeChild(prevImage);
const prevImageLabel = document.querySelector("#previewImageLabel");
if (prevImage) prevImageLabel.parentNode.removeChild(prevImageLabel);
var newImage = document.createElement("img");
newImage.style.maxHeight = "300px";
newImage.style.maxWidth = "300px";
newImage.id = "previewImage";
newImage.src = e.target.result;
var imageLabel = document.createElement("p");
imageLabel.innerHTML = "Preview image:";
imageLabel.id = "previewImageLabel";
imageSelector.parentNode.insertBefore(
imageLabel,
imageSelector.nextSibling
);
imageSelector.parentNode.insertBefore(
newImage,
imageSelector.nextSibling.nextSibling
);
};
if (image) reader.readAsDataURL(image);
else {
const prevImage = document.querySelector("#previewImage");
if (prevImage) prevImage.parentNode.removeChild(prevImage);
const prevImageLabel = document.querySelector("#previewImageLabel");
if (prevImage) prevImageLabel.parentNode.removeChild(prevImageLabel);
}
}
文件选择器输入具有#image id。请注意,如果没有选择文件,此代码将删除预览图像。
我只是想知道为什么会这样。你能想出解决办法吗?谢谢。
注意:我在 ubuntu linux 上使用 chrome
解决方案
您的某些内容必须超出屏幕。尝试使用溢出:隐藏或尝试减少输入/其他元素的宽度。
推荐阅读
- python-3.x - 从包含子字符串的列表中删除元素,例如“第 1 页,共 67 页”或“第 2 页,共 67 页”
- c - 使用嵌套循环和 If/Else 语句展开循环 10 x 10 展开
- stm32 - 如何使用 ATLINK/V2 UART 通信烧写程序
- excel - 通过 VBA 在工作表上插入的 ActiveX 标签在右侧和底部显示白色边框
- r - 检查正态分布错误
- python - 用于估算 NaN 值并给出值错误的简单 Imputer
- mysql - 在 desc 订单限制中显示客户时出错 5
- openlayers - 根据 OpenLayers 的业务趋势 - OpenLayers 支持的功能将在多大程度上保持免费?
- laravel - Laravel 迁移 - 将列放在另一列之前
- elasticsearch - How to turn off autocomplete for easticsearch match_phrase or match_phrase_prefix?