`
朱嘉华
  • 浏览: 238472 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

javascript实现卡片式效果

阅读更多
2008年05月05日 星期一 14:52
main.htm
------------------------- 
    <iframe id="box" width="100%" height="100%" frameborder="0" name="box" src="index.aspx" onload="javascript:linkbox.addlink(box.document.title,box.document.location);"></iframe>
     <iframe id="linkbox" width="100%" height="16" frameborder="no" name="linkbox" src="link.htm"></iframe>

-----------------------
link.htm
-----------------------
<html>
<head>
    <title>LinkTabs Page</title>
    <style type="text/css">
    .currHome
    {
padding-left: 15px;
padding-top: 2px;
padding-bottom: 2px;
background-image: url('../images/tab_curr_home.gif');
background-repeat: no-repeat;
background-position: left;
font-size: 9pt;
color: #3A4663;
text-decoration: none;
font-family: 宋体, Arial, Helvetica, sans-serif;
}
    
    .currLink
    {
   padding-left: 15px;
   padding-top: 2px;
   padding-bottom: 2px;
   background-image: url('../images/tab_curr.gif');
   background-repeat: no-repeat;
   background-position: left;
   font-size: 9pt;
   color: #3A4663;
   text-decoration: none;
   font-family: 宋体, Arial, Helvetica, sans-serif;
} 
.currNext
     {
padding-left: 15px;
padding-top: 2px;
padding-bottom: 2px;
background-image: url('../images/tab_currNext.gif');
background-repeat: no-repeat;
background-position: left;
font-size: 9pt;
color: #3A4663;
text-decoration: none;
font-family: 宋体, Arial, Helvetica, sans-serif;
}
.normHome
     {
padding-left: 15px;
padding-top: 2px;
padding-bottom: 2px;
background-image: url('../images/tab_norm_home.gif');
background-repeat: no-repeat;
background-position: left;
font-size: 9pt;
color: #3A4663;
text-decoration: none;
font-family: 宋体, Arial, Helvetica, sans-serif;
}
.normLink
     {
padding-left: 15px;
padding-top: 2px;
padding-bottom: 2px;
background-image: url('../images/tab_norm.gif');
background-repeat: no-repeat;
background-position: left;
font-size: 9pt;
color: #3A4663;
text-decoration: none;
font-family: 宋体, Arial, Helvetica, sans-serif;
}
    .currEnd
    {
    padding-left:15px;
     padding-top:2px;
    padding-bottom:2px;
       background-image:url('../images/tab_curr_end.GIF');
     background-repeat:no-repeat;
     background-position:left;
    font-size: 9pt; 
     color: #9CB6DB; 
        text-decoration: none;
   font-family: 宋体, Arial, Helvetica, sans-serif;
}
    .normEnd
    {
padding-left: 15px;
padding-top: 2px;
padding-bottom: 2px;
background-image: url('../images/tab_norm_end.GIF');
background-repeat: no-repeat;
background-position: left;
font-size: 9pt;
color: #9CB6DB;
text-decoration: none;
font-family: 宋体, Arial, Helvetica, sans-serif;
} 

    </style>

    <script language="javascript" type="text/javascript">
   var tab_array = new Array();//链接数组
   var tab="";
   var currIndex=-1;//当前项
   var startIndex=0;//开始显示项
  
   function addlink(title,link)
   {
    if (title.indexOf(" - ")>-1)
     title=title.split(" - ")[1];
   
    currIndex=-1;
    for(i=0;i<tab_array.length;i++)
    {
     if (tab_array[i]==title+","+link)
      currIndex=i;
    }
    if (currIndex==-1)//经上面检查没有在数组中为新链接.
    {
     //如果不等于主页的地址
     if (link!=document.location.toString().substring(0,document.location.toString().length-8)+"index.aspx")
     {
      if (tab_array.length>30)
      {
       tab_array=tab_array.reverse();
       tab_array.pop();
       tab_array=tab_array.reverse();     
      }
      //添加新链接
         tab_array.push(title+","+link);
         currIndex=tab_array.length-1;
         //重置开始显示项startIndex
         resetStartIndex(currIndex);
        }
     }
     buildTab();
   }
   //重置开始显示项startIndex(当前项currIndex在未尾)
   function resetStartIndex(currIndex)
   {
    //卡片区的宽
    var cardw=document.body.clientWidth-(17+16+16+16)-(15+24)-20;
    //显示的卡片的宽
    var tabsw=0;
    //从后往前算
    for(i=currIndex;i>-1;i--)
    { 
       title=tab_array[i].split(",")[0];
       link=tab_array[i].split(",")[1];
     if (tabsw+title.length*12<cardw)
     {
      startIndex=i;
      tabsw+=(title.length*12)+15;//15这卡片样式中padding-Left
     }
     else
      i=-1;//跳出
    }
   }
function buildTab()
{
   var title="主页";
   var link="index.aspx";
     card.innerHTML="";
     
     if (currIndex==-1)
     card.innerHTML+="<a href='"+link+"' target='box' class='currHome'>"+title+"</a>";
   else
    card.innerHTML+="<a href='"+link+"' target='box' class='normHome'>"+title+"</a>";
  
   //卡片区宽
   var cardw=document.body.clientWidth-(17+16+16+16)-(15+24)-20;
   //可显示的卡片宽
   var tabsw=0;
   //显示的卡片数
   var tabNum=0;
   //从要显示的项开始算
   for(i=startIndex;i<tab_array.length;i++)
   { 
      title=tab_array[i].split(",")[0];
      link=tab_array[i].split(",")[1];
    if (tabsw+title.length*12+15<cardw)
    {
     if (currIndex==tabNum+startIndex)
      card.innerHTML+="<a href='"+link+"' target='box' class='currLink'>"+title+"</a>";
     else if ((currIndex+1==tabNum+startIndex)||((currIndex==-1) && (tabNum==0)) )   
      card.innerHTML+="<a href='"+link+"' target='box' class='currNext'>"+title+"</a>";
     else
      card.innerHTML+="<a href='"+link+"' target='box' class='normLink'>"+title+"</a>"; 
     tabsw+=title.length*12+15;//15为卡片样式中的padding-Left
     tabNum+=1;
    }
    else
     i=tab_array.length;//跳出
    }
    if (currIndex==startIndex+tabNum-1)
       card.innerHTML+="<span class='currEnd' >&nbsp;</span>";
    else
       card.innerHTML+="<span class='normEnd' >&nbsp;</span>";
}
function firstArrowOnclick()
{
   startIndex=0;
   buildTab();
}
function forwardArrowOnclick()
{
   if (startIndex>0)
   {
    startIndex-=1;
    buildTab();
   }
}
function nextArrowOnclick()
{
   if (startIndex<tab_array.length-1)
   {
    startIndex+=1;
    buildTab();
   }
}
function endArrowOnclick()
{
   if (tab_array.length>0)
   {
    startIndex=tab_array.length-1;
    buildTab();
   }
}
    </script>

</head>
<body scroll="no" style="margin:0px;" bgcolor="#9CB6DB">
    
    
<table style="width: 100%" cellspacing="0" cellpadding="0">
   <tr>
    <td width="33">   
    <img onclick="firstArrowOnclick();" alt="第一个" src="../images/firstArrow.gif" width="17" height="15" style="cursor:hand" /><img onclick="forwardArrowOnclick();" alt="前一个" src="../images/forwardArrow.gif" width="16" height="15" style="cursor:hand;" /></td>
    <td>
     <div id="card" style=" background-color: #9CB6DB; ">
        </div>
       </td>
    <td width="32">   
    <img onclick="nextArrowOnclick();" alt="下一个" src="../images/nextArrow.gif" width="16" height="15" style="cursor:hand;" /><img onclick="endArrowOnclick();" alt="最后一个" src="../images/endArrow.gif" width="16" height="15" style="cursor:hand" /></td>
   </tr>
</table>
    &nbsp;
    
</body>
</html>

 

分享到:
评论

相关推荐

    js原生卡片式轮播图.zip

    - **动画效果**:利用CSS3的`transition`或`animation`属性实现卡片切换的平滑过渡效果。 - **定时器**:如果需要自动轮播,可以设置一个定时器,每隔一定时间调用切换卡片的函数。 **4. 动态调整**: 为了提高用户...

    微信小程序实现卡片层叠滑动效果

    在微信小程序中实现卡片层叠滑动效果,可以帮助开发者创建更丰富和直观的用户交互体验。实现该效果需要涉及到微信小程序的前端技术,如wxml、wxss和JavaScript等。 微信小程序页面中使用js文件编写JavaScript代码,...

    swiper3实现卡片效果banner

    为了实现卡片效果,我们需要启用 `effect: 'coverflow'` 选项,并可能调整其他相关参数,如 `slideShuffle` 和 `rotate`。在 JavaScript 中,这可以这样实现: ```javascript var swiper = new Swiper('.swiper-...

    reactnativecardmodal用于ReactNative框架纯javascript的卡片式UI

    通过纯JavaScript实现,开发者无需深入学习原生平台的Swift或Java,即可在React Native应用中实现这样的功能,大大降低了开发成本。 React Native的组件化特性使得`react-native-card-modal`易于集成和定制。每个...

    swiper圆角卡片式手机触屏滑动图片切换代码

    Swiper是一款广泛应用于移动设备和Web页面的触摸滑动插件,特别适合创建高质量的滑动效果,如轮播图、卡片式布局等。在"swiper圆角卡片式手机触屏滑动图片切换代码"中,它被用来实现了一种手机端的图片展示功能,...

    原生js实现卡片式日历撕掉翻转特效.zip

    本示例中的"原生js实现卡片式日历撕掉翻转特效.zip"是一个利用JavaScript(特别是原生JavaScript,非依赖任何库如jQuery)创建的创新日历功能,它通过模拟日历卡片的撕掉和翻转效果,为用户提供了独特的视觉体验。...

    jQuery实现的卡片式焦点图动态特效源码.zip

    jQuery实现卡片式焦点图的关键在于选择器、事件处理和动画效果。以下是一些核心概念: 1. **选择器**:jQuery的选择器语法简洁且强大,用于选取DOM元素。例如,`$(".card")` 将选取所有class为"card"的元素,这些...

    jQuery+CSS3响应式图文卡片轮播切换特效

    例如,通过`.slideUp()`和`.slideDown()`方法可以实现卡片的上下滑动效果,`.fadeIn()`和`.fadeOut()`则用于图片的淡入淡出过渡。 CSS3则是现代网页样式和布局的核心,它引入了许多新的选择器、动画和过渡效果。在...

    jQuery实现的卡片式翻转时钟特效源码.zip

    总的来说,这个jQuery实现的卡片式翻转时钟特效结合了JavaScript的时间处理、CSS3的3D变换以及jQuery的事件和动画功能,为网页添加了一道亮丽的风景线。通过理解并实践这个源码,开发者不仅可以提升JavaScript和...

    原生js实现卡片式挂历日历翻转特效动画.zip

    在本项目中,我们关注的是一个使用纯JavaScript(原生js)实现的卡片式挂历日历翻转特效动画。这种特效通常用于增强用户界面,为日历展示提供一种动态且吸引人的呈现方式。下面我们将深入探讨这个项目的相关知识点。...

    图片新闻导航-卡片式焦点图

    在技术实现上,卡片式焦点图可能涉及HTML、CSS和JavaScript。HTML用于构建基本的结构,如卡片容器和每个卡片的元素;CSS则负责样式设计,包括卡片的布局、过渡效果以及响应式设计,确保在不同设备上都能良好显示;...

    HTML5折叠卡片式下拉菜单代码

    综上所述,HTML5折叠卡片式下拉菜单通过`&lt;details&gt;`和`&lt;summary&gt;`标签实现了简洁的折叠效果,结合CSS可以实现丰富的样式设计,而JavaScript则允许我们进一步定制交互行为,以满足不同场景的需求。在实际项目中,这种...

    jQuery卡片式翻转时钟特效.rar

    【jQuery卡片式翻转时钟特效】是一种利用jQuery库和CSS3技术实现的创新时钟展示方式,它将时间的时、分、秒以卡片的形式进行动态翻转,为网页增添了一种独特的视觉效果。这款特效能够吸引用户注意力,使时间的呈现...

    卡片式banner+滑动标题栏渐变

    "卡片式banner+滑动标题栏渐变"的实现涉及到前端开发中的CSS3、JavaScript以及可能的框架如React或Vue。下面将详细阐述这个主题的知识点。 首先,**卡片式设计**是一种将信息组织成类似实体卡片的形式,每个卡片...

    简单的图片溢出的卡片式布局效果.zip

    标题"简单的图片溢出的卡片式布局效果"提示我们,这个压缩包可能包含了一个实现图片在卡片中溢出效果的示例。这种效果通常用于创建视觉吸引力,引导用户的注意力,并且可以增强用户体验。 首先,我们来讨论一下卡片...

    jQuery+CSS3+HTML5折叠卡片式下拉菜单特效

    本特效利用jQuery的事件处理、DOM操作,结合CSS3的动画效果和HTML5的新特性,构建出一种具有3D立体效果的折叠卡片式下拉菜单,既美观又实用。 ### HTML5基础知识 HTML5是超文本标记语言的最新版本,引入了许多新的...

    js实现 省市县 卡片式 三级联动

    7. **CSS样式**:为了实现卡片式的设计,需要编写CSS来调整下拉框的外观,例如增加边框、圆角、背景色等。可能还需要处理布局,确保卡片排列美观。 8. **优化**:为了提高用户体验,可以考虑预加载下一级别的数据,...

    CSS3侧边栏卡片式菜单导航.zip

    为了实现卡片效果,可能还需要额外的容器元素,如`&lt;div&gt;`,用以包含卡片内容。这些元素通过CSS定位,以实现滑动动画。 5. **响应式设计**: 考虑到不同设备的屏幕尺寸,一个好的侧边栏菜单应该具备响应式设计。...

    CSS3侧边栏卡片式菜单导航.rar

    这个菜单导航的特点是采用卡片式设计,既实用又具有良好的视觉效果。 在网页设计中,侧边栏菜单通常用于提供网站的主要导航选项,方便用户快速访问各个页面。CSS3的引入为菜单设计带来了更多可能性,如动画效果、...

Global site tag (gtag.js) - Google Analytics