之前用ext框架做项目,样式问题几乎不用考虑。那时候做的最多的就是图标。现在的样式都是自己的UI设计的,交换都是自己来做。刚开始做下拉菜单,右侧菜单的时候还挺担心的,不知道该怎么去处理自适应的高度计位移。
做的一个页卡,鼠标移动到区域的时候,要显示出一个页卡,页卡里面包含的多个操作。由于操作较多,页卡显示不完全,所以只列出了四个操作,另外的操作默认隐藏,只有点击更多的时候才在更多的右侧显示(右侧菜单)。
刚开始做没考虑到,这个区域靠近页面右侧的时候,右侧的剩余的区域已经不够显示页卡,或者是能显示页卡,但是点击“更多”的时候没法显示右侧菜单。这个时候就要动态计算页面右侧剩余的宽度,对页卡的偏移进行动态控制。
刚开始一头雾水。
其实后来做完之后想想,就是一些算术问题,小学的算术问题,一堆的加加减减。只是在现在的互联网上1px显得那么的精贵,所以才然这个工作看上去更有内涵。
计算出正确的偏移位置,然后利用js(jQuery)动态设置这个模块的偏移(样式)问题就解决了。
还有一个高度自适应,但有需要到一定高度的时候出现滚动条,也是类似的。有个自己定制的下拉框,一开始不能把高度给死,怕出现太多空白,所以一开始只能自适应,只有到下来列表条数达到10个的时候,才设置外层的高度,出现滚动条。js与css完美的结合。
做这个项目的时候,由于时间很赶,觉得这里很难控制,其实把思路理清了,这个小学的算术问题,还是能搞定。所以,编程,终于的是保持思路的清晰。
写到这里,好像完全跑题了,哈哈~
下面这个不完整的代码,记录我自己的加加减减--
var cardWidht = $("#divContactsAttrCard").width(); //页卡宽度
		var moreMenuWidth = $("#moreLinksInGetMail").width();							//更多菜单宽度
		var mailReadAreaElId = "#mailHeaderWrapper_" + $(host).attr("mid");				
		var mailAreaPageWidth = $(mailReadAreaElId).width();							//读信页宽度	
		var cardNewOffsetX = e.pageX -20;            									//页卡的偏移位置初始值
		var cardAndOffsetX = cardNewOffsetX +cardWidht -170 ; 							//页卡宽+选中元素相对写信页的偏移
		var mouseOffsetWithChoosedArea = e.pageX - offset.left; 						//鼠标所在的页卡的左侧宽度
		var choosedSpanElWidth = $(host).width();										//选中元素的宽度
		//页卡右侧显示不下时,设置偏移
		if(mailAreaPageWidth < cardAndOffsetX){
			var k = mailAreaPageWidth - cardWidht;//
			cardNewOffsetX =  k + 170;
		}
		
		var cardAndOffsetXAndMoreMenu = cardWidht + cardNewOffsetX  + moreMenuWidth ; //页卡宽+更多菜单宽+选中元素相对写信页的偏移
	
		//更多超过宽度的时候从左侧显示
		if(cardAndOffsetXAndMoreMenu > mailAreaPageWidth +170 ){
			$("#moreLinksInGetMail").css("left","-122px")
		}
		
		
		//鼠标在选中元素的末端时调整页卡偏移及三角箭头的偏移
		if(choosedSpanElWidth- mouseOffsetWithChoosedArea < 20){ 
			if(choosedSpanElWidth > 30){
				cardNewOffsetX = cardNewOffsetX - 28;
			}else{
				cardNewOffsetX = cardNewOffsetX - choosedSpanElWidth/3;
			}			
		}		
		//三角的显示位置
		var cotect_dir_off = e.pageX - cardNewOffsetX-13;//箭头与table本身有10像素的偏差;
		$("#attrCardPanel td:first-child span").css({"left":cotect_dir_off});
		
		container.css({
			top: containerTop,
			left: cardNewOffsetX ,
			display: "block"
		});
 
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号