加载后修改页面上所有没有id的图像(src)
Modifying all images (src) without id on page after onload
我已经放弃了寻找一个让我很高兴的跨浏览器镜像解决方案。我现在想让它成为destkops带宽成本的"移动优先"方式。
计划:将移动大小的图像发送给所有客户。然后我可以得到浏览器的视口大小,这很好。我的CSS切换如下:<=1000像素移动视图>=1001桌面视图。
但后来:我想我会用不同的文件扩展名将图像保存在相同的路径中。假设我会将它们保存为以下
/img/myimage-mobile.jpg
/img/myimage-normal.jpg
/img/myimage-highres.jpg
初始负载看起来像
<img src="img/myimage-mobile.jpg" alt="#" />
现在我的问题是:如何获取所有img标记并更改src属性的扩展名?当检测到视口宽度>=1001时,我想将所有"-mobile.jpg"替换为"-normal.jpg",将较大的~1400替换为"myimage highres.jpg"。
这就是我目前所得到的:
var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0)
var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0)
获取视口大小,然后我找到了这个,这就是获取整个src属性:
var images = document.getElementsByTagName('img');
var srcList = [];
for(var i = 0; i < images.length; i++)
{
srcList.push(images[i].src);
srcList.push(images[i].src);
}
我认为这不是最好的方法,但它确实会更改图像路径,但这也适用于窗口大小调整。如果其他开发人员想编辑它来清理或改进一些东西,那么可以随意这样做
检测用户设备不是比使用浏览器的高度/宽度更好吗?
var defaultimg="normal";
function _Imgs(){
var imgsize;
var Pw=document.documentElement.clientWidth;
var Ph=document.documentElement.clientHeight;
if(Pw<800||Ph<300){ // Change this to Set width for mobiles
imgsize="mobile";
}else{
imgsize="normal";
}
var MyImgs=document.getElementsByTagName("IMG");
for(var i=0; i<MyImgs.length; i++) {
MyImgs[i].setAttribute("src",MyImgs[i].src.replace(defaultimg, imgsize));
}
//Change variable value to allow toggle on window resize
defaultimg=imgsize;
}
window.onload=_Imgs;
window.onresize=_Imgs;
使用Jquery,您可以像这样完成
$('img').each(function(){
var fix = $(this).attr('src').replace('mobile', 'normal');
$(this).attr('src', fix);
})
要检测视口大小,可以执行以下操作:
var height = window.innerHeight;
var width = window.innerWidth;
然后制作一个函数将其封装在一起:
window.onload = function(){
var height = window.innerHeight;
var width = window.innerWidth;
if(height < 1000 && width < 400){
$('img').each(function(){
var fix = $(this).attr('src').replace('mobile', 'normal');
$(this).attr('src', fix);
})
}
}
或者使用纯javascript:
window.onload = function(){
var height = window.innerHeight;
var width = window.innerWidth;
if(height < 1000 && width < 400){
var imgs = document.getElementsByTagName('img');
for(i=0;i<imgs.length;i++){
var fix = imgs[i].src.replace('mobile', 'normal');
imgs.src = fix;
}
}
}
相关文章:
- 通过ID JavaScript显示随机背景图像
- 取出图像标签alt:丢失"没有alt-id的图像标签是优选的并且不显示丢失的“;
- 将图像附加到没有 id 或值的 td 元素
- 根据 ID 显示不同的图像
- 如何使用Java脚本获取具有相同ID的多个图像的高度和宽度
- 使用 JQuery 从另一个元素的 id 为图像分配属性
- 在图库中按ID查找图像
- 根据图像源的 id 值有条件地更改图像源
- 获取图像ID并更改图像JavaScript
- 如何使用innerHTML更改图像大小来给它一个id Javascript
- 如何获取画布中图像的Id
- 如何在CKEditor中为图像添加ID
- 单击图像时从数据库加载选项id
- 画布中的图像id
- 加载后修改页面上所有没有id的图像(src)
- 学习JavaScript:有没有办法在不使用个人ID的情况下更改一组图像的图像文件
- 使用QR图像的学生考勤系统包含学生ID
- 如何在jquery中使用图像ID获取图像位置
- 如何使用kineticjs更改图像的id
- 当 ID 不同时更改图像源