Maison interface Web js tutoriel 原生Js实现按的数据源均分时间点幻灯片效果(已封装)_javascript技巧

原生Js实现按的数据源均分时间点幻灯片效果(已封装)_javascript技巧

May 16, 2016 pm 06:13 PM
幻灯片 数据源

建议在Chrom,Firefox,Opera,Safari等标准浏览器中查看. Ie下没有阴影及圆角.

实现了根据源数据(样例中是一个JSON数据组)总条数, 均分出时间点以平滑向右动画方式显示在时间线上, 当鼠标划过时间点时, 显示对应的日期及标题. 鼠标划过事件, 充分考虑了用户体验, 当用户快速(无意识移动)从时间点上划过时, 并不触发相应事件.

相关的方法说明及使用, 请参见下面的注释或发评论, 同时也欢迎大家找bug并提交.
原生Js实现按数据源均分时间点幻灯效果
Js核心代码点此查看样例

复制代码 代码如下:

var JSONData=[{...},{...},...];//数据源,一切皆因它而生,因它而灭

function iTimePoint(iTimeSlideId, dateId, timeLineId, titleTop, titleId, defaultShow){
/* 传入参数说明:
* iTimeSlideId: 外围ID名. 本样例DOM中#itimeslide;
* dateId: 日期ID名. 本样例DOM中#date;
* timeLineId: 时间点分布ID名. 本样例DOM中#timeline;
* titleTop: 标题容器上方小三角ID名. 本样例DOM中#titletop;
* titleId: 标题容器ID名. 本样例DOM中#title;
* defaultShow: 设定初始显示的时间点, 默认为0, 可不传值
*/

//参数判断,测试用,成功运行后可删除
if (arguments.length 6) {
alert('参数传入错误,请传入5或6个值! :)');
return false;
}

//通用方法
var iBase = {
//document.getElementById
Id: function(name){
return document.getElementById(name);
},
//时间点动画显示
PointSlide: function(elem, val){
//可通过修改i+=5中的5控制滑动速度
for (var i = 0; i (function(){
//这个pos定义很重要,若直接使用闭包获取到的不是上面的i
var pos = i;
//平滑移动
setTimeout(function(){
elem.style.left = pos * val / 100 + 'px';
}, (pos + 1) * 10);
})();
}
},
//为元素添加样式
AddClass: function(elem, val){
//若元素无class,直接赋值
if (!elem.className) {
elem.className = val;
}else {
//否则通过添加空格新增一个class
var oVal = elem.className;
oVal += ' ';
oVal += val;
elem.className = val;
}
},
//获取元素索引
Index: function(cur, obj){
for (var i = 0; i if (obj[i] == cur) {
return i;
}
}
}
}
//整个函数变量定义区
var dataLen = JSONData.length;
var iTimeSilde = iBase.Id(iTimeSlideId);
var date = iBase.Id(dateId);
var timeLine = iBase.Id(timeLineId);
var titletop = iBase.Id(titleTop);
var title = iBase.Id(titleId);
var iTimeSildeW = iTimeSilde.offsetWidth;//幻灯区实际宽度
var timePoint = document.createElement('ul');//用来存储时间点的ul
var timePointLeft = null;//时间点相对于父元素左边距离
var timePointLeftCur = null;//每两个时间点间距
var pointIndex = 0;//时间点在队列中的索引值
var defaultShow = defaultShow || 0;//默认显示的时间
var clearFun=null;//当用户无意识的划过时中止执行
var that=null;
//根据数据条数生成对应的时间点html
for (var i = 0; i timePoint.innerHTML += '
  • ';
    }
    //将时间点插入到时间线DIV中
    timeLine.appendChild(timePoint)
    var timePoints = timeLine.getElementsByTagName('li');
    //时间点平滑显示
    for (var i = 0; i //每两个时间点间间距
    timePointLeftCur = parseInt(iTimeSildeW / (dataLen + 1));
    //计算对应时间点左边距
    timePointLeft = (i + 1) * timePointLeftCur;
    //时间点动画形式初始化
    iBase.PointSlide(timePoints[i], timePointLeft);
    //初始显示时间点
    setTimeout(function(){
    timePoints[defaultShow].onmouseover();
    }, 1200);
    //获取时间点默认class值,为鼠标事件做准备
    timePoints[i].oldClassName = timePoints[i].className;
    timePoints[i].onmouseover = function(){
    that = this;//确保clearFun中的this是当前的this
    //提升用户体验,当用户无意识地划过时不执行函数
    clearFun=setTimeout(function(){
    //计算出当前时间点索引值,为鼠标划出做准备
    pointIndex = iBase.Index(that, timePoints);
    //去除上一个时间点高亮样式
    for (var m = 0; m if (m != pointIndex) {
    timePoints[m].className = timePoints[m].oldClassName
    }
    }
    //为当前时间点加载高亮样式
    iBase.AddClass(that, 'hover');
    //切换日期及标题值
    date.innerHTML = '' + (JSONData[pointIndex]['date'] || '') + '';
    title.innerHTML = '' + (JSONData[pointIndex]['title'] || '') + '';
    //改变日期及标题的位置,此处减去的数字,可根据实际样式调整
    date.style.left = ((pointIndex + 1) * timePointLeftCur - 25) + 'px';
    titletop.style.left = ((pointIndex + 1) * timePointLeftCur + 6) + 'px';
    //当标题框左边距与标题框宽度之和大于外围宽度时,以右边为绝对点
    if ((title.offsetWidth + (pointIndex + 1) * timePointLeftCur) title.style.left = ((pointIndex + 1) * timePointLeftCur - timePointLeftCur) + 'px';
    }else {
    title.style.left = (iTimeSildeW - title.offsetWidth) + 'px';
    }
    //显示日期/时间点/标题
    date.style.display = 'block';
    titletop.style.display = 'block';
    title.style.display = 'block';
    },200);//200为认定无意识划过的时间,可自行调节
    }
    timePoints[i].onmouseout = function(){
    //若停留时间低于200ms,认定为无意识划过,中止函数
    clearTimeout(clearFun);
    }
    }
    }
  • Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Comment relancer ses coéquipiers
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: Comment obtenir des graines géantes
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Combien de temps faut-il pour battre Split Fiction?
    3 Il y a quelques semaines By DDD

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Power BI ne peut pas se connecter, une erreur s'est produite lors de la tentative de connexion Power BI ne peut pas se connecter, une erreur s'est produite lors de la tentative de connexion Feb 18, 2024 pm 05:48 PM

    PowerBI peut rencontrer des difficultés lorsqu'il ne parvient pas à se connecter à une source de données qui est un fichier XLS, SQL ou Excel. Cet article explorera les solutions possibles pour vous aider à résoudre ce problème. Cet article vous expliquera quoi faire si vous rencontrez des erreurs ou des échecs de connexion pendant le processus de connexion. Donc, si vous êtes confronté à ce problème, continuez à lire et nous vous fournirons quelques suggestions utiles. Quelle est l’erreur de connexion à la passerelle dans PowerBI ? Les erreurs de passerelle dans PowerBI sont souvent causées par une inadéquation entre les informations de la source de données et l'ensemble de données sous-jacent. Pour résoudre ce problème, vous devez vous assurer que la source de données définie sur la passerelle de données locale est exacte et cohérente avec la source de données spécifiée dans le bureau PowerBI. PowerBI ne peut pas se connecter

    Comment réparer le diaporama en arrière-plan qui ne fonctionne pas sous Windows 11, 10 Comment réparer le diaporama en arrière-plan qui ne fonctionne pas sous Windows 11, 10 May 05, 2023 pm 07:16 PM

    Sur les systèmes Windows 11/10, certains utilisateurs affirment que le diaporama sur l'arrière-plan du bureau a cessé de fonctionner. Les utilisateurs ne comprennent pas pourquoi les photos sur l'écran d'arrière-plan de leur ordinateur portable ne glissent plus. Les raisons de ce problème où les diaporamas ne fonctionnent pas sont décrites ci-dessous. Une application tierce de personnalisation du bureau est installée. Dans les options d'alimentation, le paramètre de diaporama en arrière-plan du bureau est suspendu. Le dossier contenant les images d'arrière-plan est supprimé. L'écran peut s'éteindre une fois le diaporama terminé. Après avoir étudié les raisons ci-dessus, nous avons créé une liste de correctifs qui aideront sans aucun doute les utilisateurs à résoudre le problème. Solution de contournement – ​​Une fenêtre désactivée peut être l'une des causes de ce problème. Essayez donc d'activer Windows et vérifiez si le problème est résolu. Essayez de l'appliquer via les paramètres

    Comment créer un diaporama avec une musique de fond sous Windows 11 ? Comment créer un diaporama avec une musique de fond sous Windows 11 ? Apr 21, 2023 am 10:07 AM

    Les diaporamas sont un excellent moyen d'organiser les images sur votre ordinateur Windows 11. Parfois, les utilisateurs de Windows peuvent être confrontés à une sorte de limitation matérielle ou de mise à jour du système, et ils ont besoin d'un moyen de stocker leurs fichiers afin qu'ils ne soient pas supprimés ou perdus accidentellement. De plus, cela rend le tri et l'affichage des photos beaucoup plus faciles que de devoir les montrer manuellement aux personnes en les faisant défiler une par une. Les diaporamas sont également un excellent moyen de rassembler des photos provenant de différentes sources (appareil photo, téléphone, clé USB) dans un format facile à apprécier. Heureusement, vous pouvez utiliser des applications tierces utiles pour créer ces diaporamas sans être obligé d'utiliser des outils comme PowerPoint. L'application convient aux présentations professionnelles, mais Pow

    Pourquoi le diaporama a-t-il des bordures noires lors de la lecture en plein écran ? Pourquoi le diaporama a-t-il des bordures noires lors de la lecture en plein écran ? Oct 20, 2023 pm 03:25 PM

    Il peut y avoir des bordures noires dans le diaporama plein écran en raison d'une inadéquation de la résolution de l'écran, d'une inadéquation de la taille de l'image, de paramètres de mode de zoom incorrects, de problèmes de paramètres du moniteur, de problèmes de conception des diapositives, etc. Introduction détaillée : 1. La résolution de l'écran ne correspond pas. Une raison courante pour laquelle les bordures noires apparaissent est que la résolution de l'écran ne correspond pas à la taille de la diapositive. Lorsque la taille de la diapositive est inférieure à la résolution de l'écran, des bordures noires apparaissent pendant la lecture. La solution consiste à ajuster la taille de la diapositive afin qu'elle corresponde à la résolution de l'écran. Dans PowerPoint, vous pouvez sélectionner l'onglet "Conception", puis cliquer sur "Taille de la diapositive", etc.

    Comment convertir PowerPoint en Google Slides ? Comment convertir PowerPoint en Google Slides ? Apr 22, 2023 pm 03:19 PM

    Comment convertir PowerPoint en Google Slides L'un des moyens les plus simples de convertir une présentation PowerPoint complète en Google Slides consiste à la télécharger. En téléchargeant un fichier PowerPoint (PPT ou PPTX) sur Google Slides, le fichier sera automatiquement converti dans un format adapté à Google Slides. Pour convertir directement PowerPoint en Google Slides, procédez comme suit : Connectez-vous à votre compte Google, accédez à la page Google Slides et cliquez sur l'espace vide sous la section "Démarrer une nouvelle présentation". Dans la nouvelle page de présentation, cliquez sur Fichier&g

    Comment masquer le texte jusqu'à ce qu'on clique dessus dans Powerpoint Comment masquer le texte jusqu'à ce qu'on clique dessus dans Powerpoint Apr 14, 2023 pm 04:40 PM

    Comment masquer le texte avant tout clic dans PowerPoint Si vous souhaitez que le texte apparaisse lorsque vous cliquez n'importe où sur une diapositive PowerPoint, sa configuration est simple et rapide. Pour masquer du texte avant de cliquer sur un bouton dans PowerPoint : Ouvrez votre document PowerPoint et cliquez sur le menu Insérer. Cliquez sur Nouvelle diapositive. Choisissez Vide ou l’un des autres préréglages. Toujours dans le menu Insertion, cliquez sur Zone de texte. Faites glisser une zone de texte sur la diapositive. Cliquez sur la zone de texte et entrez votre

    Introduction à la méthode d'insertion d'heptagones dans les diapositives PPT Introduction à la méthode d'insertion d'heptagones dans les diapositives PPT Mar 26, 2024 pm 07:46 PM

    1. Ouvrez le document de diapositive PPT et dans la colonne [Contour, Diapositive] sur le côté gauche du PPT, cliquez pour sélectionner la diapositive dans laquelle vous souhaitez insérer la [forme] de base. 2. Après la sélection, sélectionnez le menu [Insérer] dans la barre de menu des fonctions au-dessus du PPT et cliquez. 3. Après avoir cliqué sur le menu [Insérer], la barre de sous-menu [Insérer] apparaît sous la barre de menu des fonctions. Sélectionnez le menu [Forme] dans la barre de sous-menu [Insérer]. 4. Cliquez sur le menu [Forme] pour faire apparaître la page de sélection du type de forme prédéfinie. 5. Dans la page de sélection du type de forme, sélectionnez la forme [Heptagone] et cliquez. 6. Après avoir cliqué, déplacez la souris vers l'interface d'édition de diapositives, appuyez sur la souris pour dessiner et relâchez la souris une fois le dessin terminé. Terminez l'insertion de la forme [heptagone].

    Étapes pour unifier la couleur du thème des diapositives PPT Étapes pour unifier la couleur du thème des diapositives PPT Mar 26, 2024 pm 08:51 PM

    1. La palette de couleurs est naturellement liée au design, nous cliquons donc sur la barre d'outils de conception et sur le côté droit, vous pouvez voir les options de couleur. Pointez la souris vers le haut et vous pouvez voir que la couleur actuelle du thème est : Modèle de conception par défaut 1. 2. Cliquez sur cette option, et la première est la conception de couleur actuelle. Pour changer cela, nous allons descendre sous le panneau : Nouvelles couleurs du thème. 3. Cliquez dessus et dans la colonne de couleurs qui apparaît, vous pouvez voir qu'il existe trois couleurs de texte d'accentuation, toutes claires et presque impossibles à afficher sur un fond clair. Parmi elles se trouve la couleur du texte dans cet exemple. 4. Cliquez sur la flèche déroulante à droite de la couleur pour afficher le panneau de sélection des couleurs. Afin de ne pas détruire la correspondance globale des couleurs, choisissez une couleur sombre dans le système de couleurs primaires pour remplacer la couleur primaire. Remplacez les deux autres couleurs de la même manière. 5. Comparez la couleur modifiée avec la couleur d'origine. A gauche se trouve

    See all articles