zoukankan      html  css  js  c++  java
  • 网页图片比例不变,不超过边界,并且尽量大的js实现

    想实现一个效果:假设有若干个高宽不同的图片,我想达到一个效果:1、比例不变。2、高宽不能超过某个值。3、尽量大。应该怎么实现?

    本来想用css实现的,但发现css似乎实现不了第3点。只能用javascript了。

    下面这个例子是使用了jquery的,仅为了看看效果,配图是随便找的:

    因为想用源生js,所以很多东西懒得弄。直接把代码贴一下。

    <html>
    <head>
        <style type="text/css">
            td,input { 200px; height: 400px;}
        </style>
    </head>
    <body>
    <input type="text" />
    <table>
        <tbody>
        <tr>
            <td><img src="img/1.png" /></td>
            <td><img src="img/2.png" /></td>
        </tr>
        <tr>
            <td><img src="img/3.jpg" /></td>
            <td><img src="img/4.jpg" /></td>
        </tr>
        </tbody>
    </table>
    </body>
    <script type="text/javascript">
        var input = document.getElementsByTagName("input")[0];
        var toWidth = input.offsetWidth;
        var toHeight = input.offsetHeight;
        input.style.display = "none";//仅仅是想自动获取w,h。也可以在这写死。
    
        var omw = function(e){
            var kc;
            if(navigator.userAgent.indexOf("Firefox")>0){kc = e;}
            else {kc=event}
            var img = kc.target;
            var delta = kc.wheelDelta ? kc.wheelDelta : kc.detail*40;
            var mul = (1+(delta/1200));
            img.width = mul*img.width;
            img.height = mul*img.height;
            kc.preventDefault ? kc.preventDefault() : kc.returnValue= false;
            return false;
        };
    
        var whp = toWidth/toHeight;
        var imgs = document.getElementsByTagName("img");
        for(var i=0;i<imgs.length;i++){
            var _img = imgs[i];
            if(document.addEventListener){
                _img.addEventListener("DOMMouseScroll",function(e){
                    return omw(e);
                }, false);
            }
            try{
                _img.onmousewheel = function(e){return omw(e);};
            }
            catch (e){
                //
            }
    
            var iWhp = _img.width/_img.height;
            if(iWhp>whp){
                _img.width = toWidth;
                _img.height = toWidth/iWhp;
            }
            else {
                _img.height = toHeight;
                _img.width = toHeight*iWhp;
            }
        }
    </script>
    </html>
    

      

  • 相关阅读:
    Hadoop启动报Error: JAVA_HOME is not set and could not be found
    mrjob在hadoop上跑的时候,报错
    Hadoop3安装踩坑 there is no HDFS_NAMENODE_USER defined. Aborting operation.
    mrjob 运行报错
    站位

    Lua基本数据类型
    常量指针和指针常量
    C基础题
    C++拷贝构造函数(深拷贝,浅拷贝)
  • 原文地址:https://www.cnblogs.com/zycjwdss/p/3044390.html
Copyright © 2011-2022 走看看