原生Js实现按的数据源均分时间点幻灯片效果(已封装)_javascript技巧
建议在Chrom,Firefox,Opera,Safari等标准浏览器中查看. Ie下没有阴影及圆角.
实现了根据源数据(样例中是一个JSON数据组)总条数, 均分出时间点以平滑向右动画方式显示在时间线上, 当鼠标划过时间点时, 显示对应的日期及标题. 鼠标划过事件, 充分考虑了用户体验, 当用户快速(无意识移动)从时间点上划过时, 并不触发相应事件.
相关的方法说明及使用, 请参见下面的注释或发评论, 同时也欢迎大家找bug并提交.
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);
}
}
}

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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

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

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

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 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 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

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].

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
