设置宽度附加的儿童图像-香草javascript
Setting Width to Appended Child Image - VANILLA javascript
我用jQuery构建了一个图像滑块,并认为在香草javascript(这是一个很棒的框架;)中做同样的事情会是一个很好的练习。很高兴知道,虽然我可以用jQuery构建东西,但我对底层实际发生的事情了解甚少。
无论如何,这是我的问题。我试图设置我已添加到列表元素的图像的宽度。由于某种原因,我所写的代码不影响图像的宽度属性。我更新了css作为一个健全的检查,它工作得很好,所以它必须是一个问题与js。代码如下:
console.log('Yeh, bitch! Programming!');
function slider() {
var settings = {
width: "700px"
}; // end settings object
var sliderImages = document.getElementById('slider-images').querySelectorAll('img'),
prevImg = document.getElementById('prev-img'),
currentImg = document.getElementById('current-img'),
nextImg = document.getElementById('next-img'),
wrapperInner = document.getElementById('img-wrapper-inner'),
imgList = [],
imgAttr;
for (var i = 0; i < sliderImages.length; i++) {
sliderImages[i].style.display = "none";
};
function grabImages() {
var DOM_img;
for (var i = 0; i < sliderImages.length; i++) {
imgSrc = sliderImages[i].getAttribute('src');
DOM_img = document.createElement('img');
DOM_img.src = imgSrc;
imgList.push(DOM_img);
console.log(imgList[i]);
}; // end for
prevImg.appendChild(imgList[imgList.length -1]);
currentImg.appendChild(imgList[0]);
nextImg.appendChild(imgList[1]);
}; // end grabImages
grabImages();
var visibleImages = wrapperInner.querySelectorAll('ul li img');
visibleImages.style = 'width: ' + settings.width;
};// end slider
slider();
让我知道如果你需要css和html。我只是不想把文章写得太长。
querySelectorAll
返回一个没有style
属性的NodeList
集合。
如果你想改变集合中每个元素的样式,你必须迭代它。
例如,使用[].forEach
:
[].forEach.call(visibleImages, function(element) {
element.style.width = settings.width;
});
注意,给style
属性赋值是一个不好的做法。在一些浏览器上,style
是作为一个带有getter但没有setter的accessor属性实现的,因此对它的赋值将在非严格模式下被忽略或在严格模式下抛出。在其他浏览器上,它将替换所有的内联样式。相反,最好分配给style.width
。或者,如果你真的想摆脱以前的内联样式,到style.cssText
.
你的问题在这里:
var visibleImages = wrapperInner.querySelectorAll('ul li img');
visibleImages.style = 'width: ' + settings.width;
你试图设置NodeList
的样式属性,但因为它是一个列表,你不能设置属性!
改为:
var visibleImages = wrapperInner.querySelectorAll('ul li img');
for (var i = 0; i < visibleImages.length; i++)
visibleImages[i].style = 'width: ' + settings.width;
为了遍历visableImages
并设置所有的样式
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 角度:在ng重复上切换图像
- 画廊图像未显示
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- Javascript排序的图像弹出窗口..可以't单独弹出
- 画布数据到图像
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 使图像在单击时展开到不大于浏览器
- Html页面上的多个Base64图像和平滑加载
- UIAutomation放大图像
- 使用javascript在Flash中加载外部图像
- 可以在这里为背景图像设置滤镜吗
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 使用 js 将背景图像设置为 HTML
- Javascript将图像src更改为淡入淡出
- 使用香草Javascript使用鼠标事件左右移动/滑动图像
- 设置宽度附加的儿童图像-香草javascript
- 分割图像src属性与普通的香草JavaScript和没有Regex