参考资料:http://yuilibrary.com/yui/docs/resize/simple-resize.html
需求说明:用鼠标控制div的大小,并且根据大小相应的截断div中段落的文字。如图,用鼠标控制外部div的尺寸,在尺寸改变的同时,使左侧文字适应div的大小而进行文字截断,右边的事件不截断。
代码:
<html> <head> <base href="<%=basePath%>"> <title>文字截取</title> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <div class="journal-content-article"> <ul class="list_ul"> <li> <span><a>我校专业技术岗位等级聘任工作已结束</a></span> <em>2012-07-21</em> </li> <li> <span><a>踏寻历史踪迹 在实践中成长</a></span> <em >2012-07-13</em> </li> <li> <span><a>教师系列专业技术职务聘任结果</a></span> <em2012-07-02</em> </li> <li> <span ><a>我校小学部举行数学学科期末复习引路活动</a></span> <em>2012-06-26</em> </li> <li> <span ><a>我校举行"青蓝杯"教学大赛优胜...</a></span> <em>2012-06-26</em> </li> <li> <span><a>我校举行2012届毕业典礼</a></span> <em>2012-06-26</em> </li> <li> <span><a>教师系列专业技术职务聘任结果公告</a></span> <em>2012-06-22</em> </li> </ul> </div> <script src="http://yui.yahooapis.com/3.9.0/build/yui/yui-min.js"></script> <script type="text/javascript"> //YUI要用到的模块有node和resize-plugin YUI().use('node','resize-plugin',function(Y){ var tag_arr = Y.all("a");//所有<a>标签做成的数组 var tag_strArr = new Y.Array(String);//所有<a>标签内容做成的数组 var tag_showStr = null;//每行文字显示的文字 var tag_lenArr = new Y.Array(String);//每行文字的长度 var tag_fontsize = 0;//文字像素 //YUI中的数组遍历操作用 数组名.each(function(item,index)){} //其中item表示当前数组中的对象,index表示当前数组中对象的下标 tag_arr.each(function(item,index){ tag_strArr[index] = item.getHTML(); tag_lenArr[index] = item.getHTML().length; }); /**获取文字像素*/ var div = Y.one(".journal-content-article"); var date = Y.one("em"); //YUI中获取CSS样式的方法是 元素.getStyle(属性名) tag_fontsize = div.getStyle("fontSize"); /**pt与px的转换*/ var fsLen = tag_fontsize.length; var fstail = tag_fontsize.toString().substring(fsLen-2, fsLen); var maxLength = null; switch(fstail) { case "pt": tag_fontsize = parseInt(tag_fontsize)*4/3; break; case "em": tag_fontsize = parseInt(tag_fontsize)*16; break; case "px": tag_fontsize = parseInt(tag_fontsize); break; } //我们已经引入了YUI的Resize模块,现在需要实例化一个接口 var resizeDiv = new Y.Resize({ node: ".journal-content-article" }); /**监听div尺寸改变事件*/ //resize的事件有很多比如:start、mouseUp、end、resize等 resizeDiv.on("resize",function(){ /**获取div的宽度*/ var divWidth = parseInt(div.getStyle("width")); var data_len = date.getHTML().length; var data_width = tag_fontsize*(data_len); maxLength = parseInt((divWidth-data_width)/tag_fontsize);//div最多能显示的字符长度 tag_arr.each(function(item,index){ if(tag_lenArr[index]>=maxLength) { tag_showStr = tag_strArr[index].substr(0,maxLength); item.setHTML(tag_showStr); } }); }); }); </script> </body> </html>
相关推荐
【Yui_ext 学习笔记】 Yui_ext 是基于 Yahoo! UI Library (YUI) 的扩展,主要用于构建富客户端的 Web 应用程序。这篇学习笔记主要介绍了 Yui_ext 的基础知识,适合对 JavaScript 和 HTML DOM 有一定了解的初学者。 ...
YUI3是YUI库的第三个主要版本,着重于模块化、轻量化以及性能优化。本文将围绕“yui3-master.zip”这个压缩包,深入探讨YUI3的核心概念、结构和实际应用。 1. **模块化设计** YUI3采用了模块化的设计理念,每个...
《YUI使用文档》汉语版是一份详细的YUI学习材料,它涵盖了这个JavaScript库的核心功能和使用方法。YUI,全称Yahoo! User Interface Library,是Yahoo开发的一个开放源代码的JavaScript库,旨在帮助开发者创建交互式...
在这个例子中,左中右三个模块的划分,正是通过YUI的Container组件和Grids CSS实现的,它们使得页面结构清晰,代码可读性强。 接下来,我们要讨论的是YUI的模块化设计。YUI遵循了“按需加载”的原则,这意味着...
1. **模块化**:YUI采用AMD(Asynchronous Module Definition)模块加载机制,允许异步加载和依赖管理,使得代码组织清晰,便于维护。 2. **响应式设计**:YUI提供了响应式设计工具,如Grids布局系统,能根据屏幕...
YUI3沙盒下的多模块交互实践是指利用YUI3框架所提供的沙盒模式实现多个模块之间的交互。YUI3是Yahoo公司开发的一款前端JavaScript框架,旨在帮助开发者创建高度可扩展和模块化的网络应用程序。在YUI3中,沙盒...
1. **模块系统**:YUI3引入了CommonJS风格的模块系统,允许开发者通过`YUI.use()`方法加载所需模块,实现按需加载,减少页面初始化时的加载量。 2. **事件处理**:YUI3提供了强大的事件系统,支持DOM事件、自定义...
学习YUI,不仅能够提升你的前端开发技能,还能让你了解模块化和组件化开发的思想,这对于现代Web开发来说是非常重要的。结合YUI.ppt的资料,你可以更系统地学习这个框架,逐步掌握其精髓,并将其应用到实际项目中。
1. **模块系统**:YUI 3.8.1采用CommonJS规范,通过YUI.use()方法按需加载模块,降低初始页面加载时间。此外,还支持AMD(异步模块定义)模式,适应不同的开发需求。 2. **事件处理**:YUI提供了一套完整的事件系统...
YUI的设计非常注重模块化和可扩展性,开发者可以通过编写新的模块来扩展其功能。YUI的模块化结构使得代码组织清晰,易于维护。 **3. 文档和示例** YUI 2.7提供的文档详尽介绍了每个组件的用法,包括API参考、教程和...
在表单验证方面,YUI提供了`YUI.FormValidator`模块,可以创建自定义验证规则,支持实时验证和提交时验证。通过`FormValidator.create()`方法创建验证器实例,然后指定验证规则,如`{required: true}`表示字段必须...
1. **模块化设计**:YUI采用模块化的结构,允许开发者按需加载所需的组件,减少页面加载时间,提高性能。 2. **跨浏览器兼容性**:YUI经过精心设计,确保在主流浏览器上都能正常运行,包括IE、Firefox、Chrome、...
1. **模块化设计**:YUI采用了模块化的架构,允许开发者根据需要只加载必要的组件,降低了页面加载时间,提高了性能。这包括事件处理、DOM操作、动画效果、Ajax交互等多个独立模块。 2. **DOM操作**:YUI提供了强大...
源码分析对于开发者来说,不仅能帮助理解YUI的工作原理,还可以学习到优秀的编程实践,比如模块化设计、事件驱动编程、性能优化等方面的知识。通过研究YUI 3.1.2的非压缩源码,我们可以深入理解这个强大库的内部构造...
1. **模块系统**:YUI3引入了模块化设计,允许开发者按需加载组件,降低页面的初始化时间。模块可以通过`YUI.use()`方法来加载,实现了代码的异步加载和依赖管理。 2. **事件系统**:YUI的事件处理机制强大且灵活,...
1. **数据管理**:YUI提供了一些用于处理和展示数据的插件,例如DataGrid,它可以将数据以表格形式呈现,支持排序、过滤和分页等功能。还有DataSource组件,可以方便地从服务器获取和管理数据。 2. **图表和可视化*...
1. **模块化设计** YUI的核心理念之一就是模块化。每个功能或组件都被封装为独立的模块,如Event(事件)、Animation(动画)、Node(DOM操作)等。开发者可以根据项目需求选择需要的模块,降低代码体积,提高性能...