2 qq 15384063 qq_15384063 于 2014.12.17 18:41 提问

我的这段javascript代码有什么问题嘛?前端的
window.onload = function(){ var width = document.getElementById("123").style.width; var height = document.getElementById("123").style.height; document.write(width); document.getElementById("123").style.backgroundSize = "Math.max(width, height), Math.max(width, height)"; }

我不知道最后一句设置背景图片大小的应该怎么写,我是想让背景图片要能够刚好覆盖div

6个回答

huyuyang6688
huyuyang6688   2014.12.17 20:45

以下代码是调试好的,可以用:

 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>倒计时</title>
    <script type="text/javascript">
    function getRTime(){
        //var EndTime= new Date('2015/01/01 10:00:00'); //截止时间
        var endTimeStr=document.getElementById("endTime").value;
        var EndTime= new Date(endTimeStr); //截止时间
        var NowTime = new Date();
        var t =EndTime.getTime() - NowTime.getTime();

        var d=Math.floor(t/1000/60/60/24);
        var h=Math.floor(t/1000/60/60%24);
        var m=Math.floor(t/1000/60%60);
        var s=Math.floor(t/1000%60);

        document.getElementById("t_d").innerHTML = d + "天";
        document.getElementById("t_h").innerHTML = h + "时";
        document.getElementById("t_m").innerHTML = m + "分";
        document.getElementById("t_s").innerHTML = s + "秒";
    }
    function StartTiming(){
        alert("即将开始计时");
        setInterval(getRTime,1000);
    }

    </script>
</head>
<body>
请输入倒计时时间:
<form>
    <input id="endTime" name="endTime" type="text" value="2015/01/01 10:00:00">
    <input name="btnStart" type="button" value="开始倒计时" onClick="StartTiming()">
</form>
<DIV id="CountMsg" class="HotDate">
    <span id="t_d">00天</span>
    <span id="t_h">00时</span>
    <span id="t_m">00分</span>
    <span id="t_s">00秒</span>
</DIV>
</body>
</html> 

注意:文本框输入的时间格式为:yyyy/mm/dd hh:mm:ss,如2015/01/01 10:00:00

huyuyang6688
huyuyang6688 回复qq_15384063: 不好意思发错了,为此深感抱歉。。。。我看上面showbo这位朋友说的是正解。。。。
大约 3 年之前 回复
qq_15384063
qq_15384063 你这个又是什么代码啊
大约 3 年之前 回复
showbo
showbo   Ds   Rxr 2014.12.17 21:33

你那样设置错了,直接将"Math.max(width, height), Math.max(width, height)"作为backgroundSize的值了,而不是实际的值,这个属性的width和height也不需要用逗号隔开,用空格

而且要parseInt转为字符串去掉px或者em单位,而且background-size低版本ie浏览器(IE8-)不支持

id最好不要用数字,虽然支持数字,但是最好起规范来,和变量名称一样

 window.onload = function(){ 
   var width =parseInt( document.getElementById("123").style.width); 
   var height =parseInt( document.getElementById("123").style.height); 
   document.getElementById("123").style.backgroundSize = Math.max(width, height)+'px '+  Math.max(width, height)+'px'; 
}
xiaogang1007
xiaogang1007   2014.12.17 19:17

id名称不可以是数字

qq_15384063
qq_15384063 应该是像素无法直接比较。打印Math.max(width, height)的结果是NaN,请问像素怎么比较大小?
大约 3 年之前 回复
wsm201005030226
wsm201005030226   2014.12.17 20:53

js中var定义的变量默认为字符串类型,如果直接比较会出现错误,需要转换成int类型的在比较,正确写法Math.max(parseInt(width),parseInt(height));

qq_15384063
qq_15384063 多谢你啊!
大约 3 年之前 回复
maoguiyou
maoguiyou   2014.12.19 22:39

可以用background-size:100% 100%设置你说的那种效果

quiet201
quiet201   2014.12.21 20:13

能用变量命名吗 看这头痛呀 亲

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!