zoukankan      html  css  js  c++  java
  • 在需要的时候用js收缩文本高度

    在显示图书目录的时候,往往拉的页面很长,用户一眼看不到边,这样用户体验不好,所以经常可以看看“继续阅读”的链接。

    它是如何实现的呢,其实就是用js检测块的高度,如果高度超过一定数,则修改文本块的高度,并设置overflow:hidden,然后再创建一个继续阅读的连接放在下面用来展开所有内容。

    js代码如下,代码在ie和firefox下测试通过:

    Code
    function doShrink(oshrink,maxHeight){
        
    if(oshrink){
            
    var oH = (oshrink.clientHeight||oshrink.offsetHeight);
            
    if(oH>maxHeight){
                
    var link = document.createElement("a");
                
    var div = document.createElement("div");
                div.className 
    = "smallA";
                div.innerHTML 
    = "…………<br />"
                text 
    = document.createTextNode("[点击查看更多内容]");
                link.href 
    = "javascript:void(0)";
                link.onclick 
    = function(e) { shrinkShow(this); }
                link.appendChild(text);
                div.appendChild(link);
                
    var onext = oshrink.nextSibling;
                
    if(onext)
                    oshrink.parentNode.insertBefore(div,onext);
                
    else
                    oshrink.parentNode.appendChild(div);
                
    //过滤较长的内容
                oshrink.srcHeight = oH;
                oshrink.style.cssText 
    ="overflow-y: hidden; max-height: "+maxHeight+"px; *_height: "+maxHeight+"px; ";
            }
        }
    }
    function shrinkShow(obj) {
        
    var omore = obj.parentNode;
        
    var ohide = omore.previousSibling;
        ohide.style.height  
    = ohide.srcHeight + 'px';
        ohide.style.maxHeight  
    = ohide.srcHeight + 'px';
        remove(omore);
    }

    测试文本

    测试了

    测试侧试试了

    测试文本

    测试了

    测试侧试试了

    测试

    测试文本

    测试了

    测试侧试试了

    测试文本

    测试了

    测试侧试试了

    如上面的测试代码效果

    这个地址你可以看到更形象的测试效果图

  • 相关阅读:
    github单独下载一个文件夹
    搭建github服务器
    ssh xshell 连接在vim中无法用 ctrl+insert 复制黏贴
    centos 下文件夹共享
    rootkit 内核函数hook
    centos dhcp获取不到ip解决方法 Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization.
    ipc 入侵步骤
    linux 无交互添加用户设置密码
    C++笔记
    感谢路遥 感谢平凡的世界
  • 原文地址:https://www.cnblogs.com/yukaizhao/p/js_shrink.html
Copyright © 2011-2022 走看看