百度空间 | 百度首页 
               
 
查看文章
 
ResizableControl控件
2007-12-22 04:43

一个给UE(用户体验)带来无限可能的控件。以前有人说不知道用这个来做什么,的确,如果你不从设计和用户体验的角度来看的话,这个的确没有什么作用,放大字体?那个用Slider不是更好吗?说道用户体验,顺便说一下,现在正是一个好的机遇,因为现在正是窄屏显示器向宽屏显示器过渡的时期,能让用户自由的放大、缩小区域绝对会带来用户的高体验度。下面就先来讲下属性和用法,然后举个例子来说明一下它用作提高用户体验的一个例子。
照常,先放出属性,这次还将放出它的几个事件:
1. TargetControlID - The ID of the element that becomes resizable【目标控件】
2. HandleCssClass - The name of the CSS class to apply to the resize handle【Handle(把手?)样式,这个是必须设置的!】
3. ResizableCssClass - The name of the CSS class to apply to the element when resizing【目标控件的样式】
4. MinimumWidth/MinimumHeight - Minimum dimensions of the resizable element【最小高宽】
5. MaximumWidth/MaximumHeight - Maximum dimensions of the resizable element【最大高宽】
6. OnClientResizeBegin - Event fired when the element starts being resized【事件:在开始缩放时触发】
7. OnClientResizing - Event fired as the element is being resized【事件:在缩放过程只能够触发】
8. OnClientResize - Event fired when the element has been resized【事件:在缩放结束后出发】
9. HandleOffsetX/HandleOffsetY - Offsets to apply to the location of the resize handle【Handle的坐标偏移量】

HandleCssClass
属性必须设置,一般我们会放个背景图片上去,这样来指引用户的行为。

这里是个HandleCssClass的参考: 注意:OnClientResize="ResizeClientSize"引号里面不是ResizeClientSize();

.handleCss{}{
width
:28px;
height
:28px;
background-image
:url("images/seResize.png");
overflow
:hidden;
cursor
:se-resize; /**//*这个别忘记设置哦*/
}

下面就UE角度来讲下此控件的使用,抛砖引玉,高人勿笑。微软提供的例子中是将这个用在缩放文章中的图片。其实这个我感觉这样不好。首先不说图片缩放会不会引起失真,传统的缩略图实现方法(用一个小的图片来链接背后大的图片)虽然比较麻烦,但是就现在中国的网络状况而言还是很实用的(昨天看到一篇文章说美国的速度是2Mb/s,还说速度已经大大落后于世界水平了,那中国呢?俺上网的时候连电骡都不敢开。哭~)。只说对辛苦排版的破坏这点就值得商榷。所以我感觉对于文章中图片的缩放并不是它很好的用处。我用它来提高宽屏显示器的体验度上。众所周知,现在宽屏液晶显示器的用户越来越多,怎么给花了大价钱的他们更好的体验度是个值得思考的问题。到底如何实现,看看下面的图片(点击图片看大图):

将handle的x坐标做个较大的偏移,将它移到外面,将文章的容器居中显示,调整适当的宽度(800*600时不出现横向滚动条为佳),别忘记 调整ResizableControl控件的最小高宽度。这样handle就在最右下角,实用800*600分辨率的用户虽然可以看到,也可以缩小,但是用户一般不会去放大。而在1024*768或者更高的用户来浏览时就可以很方面的放大此阅读区域。然后通过OnClientResize事件记住用户的最终拖放结果,存放起来,这样当用户再浏览其他的页面的适合就不用再拖放了,从而提高用户体验。
最后再说一下ajax控件的事件的用法。习惯javascript的用户可能会不太习惯,那是因为它的事件不要加括号和分号。只要直接写函数名就可以啦。下面是个例子:

<script language="javascript" type="text/javascript">
    
function ResizeClientSize(){
     window.status
="Resize at " + (new Date()).toString();
     }

</script>

<cc1:ResizableControlExtender OnClientResize="ResizeClientSize" ID="ResizableControlExtender1" runat="server" TargetControlID="Panel1" HandleCssClass="handleCss" ResizableCssClass="resizableCss" MaximumHeight="1200" MaximumWidth="1200" MinimumHeight="100" MinimumWidth="100" HandleOffsetX="30" HandleOffsetY="3" >
</cc1:ResizableControlExtender>

类别:web编程 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu