added a:hover in text highlighting dots in links

This commit is contained in:
Bachir Soussi Chiadmi
2017-07-18 19:32:14 +02:00
parent c62b1df52d
commit 9d41425081
5 changed files with 108 additions and 59 deletions
+17 -11
View File
@@ -763,7 +763,7 @@ header {
header > *:last-child { header > *:last-child {
margin-right: 1em; } margin-right: 1em; }
header > h1 { header > h1 {
margin: 0 0 0 50px; } margin: 0 0 0 70px; }
nav#menus { nav#menus {
float: right; } float: right; }
@@ -790,7 +790,7 @@ h1.part {
section.enonce { section.enonce {
width: 450px; width: 450px;
margin: 1em 0; margin: 1em 0 1em 50px;
overflow-x: visible; overflow-x: visible;
font-family: 'amiri', sans-serif; font-family: 'amiri', sans-serif;
font-size: 16px; font-size: 16px;
@@ -823,7 +823,7 @@ section.enonce {
border-left: 1px solid #999; } border-left: 1px solid #999; }
h1.part { h1.part {
margin: 0 0 0 50px; } margin: 1em 0 0 70px; }
.dot { .dot {
position: relative; position: relative;
@@ -862,23 +862,27 @@ h1.part {
margin: 0; } margin: 0; }
.dot > section.text p:not(:last-child) { .dot > section.text p:not(:last-child) {
margin-bottom: 1em; } margin-bottom: 1em; }
.dot > section.text a {
color: inherit;
text-decoration: none;
font-weight: bold; }
.dot.to-links > section.text { .dot.to-links > section.text {
border-top: 1px solid #e2e2e2; } border-top: 1px solid #e2e2e2; }
.dot.from-links > section.text { .dot.from-links > section.text {
border-bottom: 1px solid #e2e2e2; } border-bottom: 1px solid #e2e2e2; }
.dot > aside.links { .dot > nav.links {
position: relative; position: relative;
left: 100px; left: 100px;
box-sizing: border-box; } box-sizing: border-box; }
.dot > aside.links.to { .dot > nav.links.to {
bottom: 100%; bottom: 100%;
margin-top: 30px; margin-top: 15px;
padding-bottom: 10px; } padding-bottom: 10px; }
.dot > aside.links.from { .dot > nav.links.from {
top: 100%; top: 100%;
padding-top: 10px; padding-top: 10px;
margin-bottom: 30px; } margin-bottom: 15px; }
.dot > aside.links:before { .dot > nav.links:before {
content: ""; content: "";
border-left: 1px solid #e2e2e2; border-left: 1px solid #e2e2e2;
position: absolute; position: absolute;
@@ -887,14 +891,16 @@ h1.part {
height: 100%; height: 100%;
width: 1px; width: 1px;
z-index: -1; } z-index: -1; }
.dot:hover > p.summary, .dot.opened > p.summary { .dot:hover > p.summary, .dot.opened > p.summary, .dot.highlight > p.summary {
opacity: 1; opacity: 1;
transition: opacity 0.4s ease-in-out; } transition: opacity 0.4s ease-in-out; }
.dot:hover > span.id, .dot.opened > span.id { .dot:hover > span.id, .dot.opened > span.id, .dot.highlight > span.id {
opacity: 1; opacity: 1;
transition: opacity 0.4s ease-in-out; } transition: opacity 0.4s ease-in-out; }
.dot.disabled > * { .dot.disabled > * {
color: grey; } color: grey; }
.dot:not(.opened) {
line-height: 0.7; }
footer { footer {
position: fixed; position: fixed;
+37 -20
View File
@@ -3267,28 +3267,14 @@ var _Dot = {
}, },
onbeforeupdate: function(vn){ onbeforeupdate: function(vn){
}, },
onupdate: function(vn){
// console.log('_Dot : onupdate', vn);
if(this.active){
if (this.opened){
vn.dom.classList.add('opened');
if(this.links.to.length)
vn.dom.classList.add('to-links');
}else{
vn.dom.classList.remove('opened');
if(this.links.from.length)
vn.dom.classList.add('from-links');
}
}
},
view: function(vn){ view: function(vn){
if (this.active && this.opened) { if (this.active && this.opened) {
// full view of dot with linked dots // full view of dot with linked dots
console.log('_Dot view '+this.id+' parents :',this.parents); // console.log('_Dot view '+this.id+' parents :',this.parents);
var dot_content = [ var dot_content = [
// links to // links to
this.links.to.length this.links.to.length
? m('aside', {'class':'links to'}, this.links.to.map(function(id){ ? m('nav', {'class':'links to'}, this.links.to.map(function(id){
// console.log(id); // console.log(id);
return m(_Dot, { return m(_Dot, {
"id":id, "id":id,
@@ -3307,10 +3293,27 @@ var _Dot = {
// bullet // bullet
m('span', {'class':'bullet'}, m.trust('⚫')), m('span', {'class':'bullet'}, m.trust('⚫')),
// full text // full text
m('section', {'class':'text'}, m.trust(this.text)), m('section', {
'class':'text',
onmouseover: function(e){
e.preventDefault();
if(e.target.nodeName == "A" ){
// console.log("over e.target", e.target);
// console.log('over vn', vn);
var id = e.target.getAttribute("href");
// add highlight class
vn.dom.querySelector('nav.links>div[uid="'+id+'"]').classList.add('highlight');
}else{
// remove all hilight class
for (link of vn.dom.querySelectorAll('nav.links>div.dot')) {
link.classList.remove('highlight');
}
}
}
}, m.trust(this.text)),
// links from // links from
this.links.from.length this.links.from.length
? m('aside', {'class':'links from'}, this.links.from.map(function(id){ ? m('nav', {'class':'links from'}, this.links.from.map(function(id){
// retrun a dot // retrun a dot
return m(_Dot, { return m(_Dot, {
"id":id, "id":id,
@@ -3340,11 +3343,25 @@ var _Dot = {
} }
return m('div',{ return m('div',{
'id':this.id, 'uid':this.id,
'class':'dot' 'class':'dot'
}, },
dot_content dot_content
); );
},
onupdate: function(vn){
// console.log('_Dot : onupdate', vn);
if(this.active){
if (this.opened){
vn.dom.classList.add('opened');
if(this.links.to.length)
vn.dom.classList.add('to-links');
if(this.links.from.length)
vn.dom.classList.add('from-links');
}else{
vn.dom.classList.remove('opened');
}
}
} }
} }
@@ -3480,7 +3497,7 @@ var _Part = {
// /_____/\____/\__/____/ // /_____/\____/\__/____/
module.exports = { module.exports = {
view: function(){ view: function(){
console.log('_Dots view', _dbs.lang); // console.log('_Dots view', _dbs.lang);
return [ return [
m(_Header), m(_Header),
m('main', {id:"content", 'class':'dots'}, _dbs.data[_dbs.lang].map(function(p){ m('main', {id:"content", 'class':'dots'}, _dbs.data[_dbs.lang].map(function(p){
+1 -1
View File
File diff suppressed because one or more lines are too long
+16 -7
View File
@@ -38,7 +38,7 @@ header{
&:last-child{ margin-right: 1em;} &:last-child{ margin-right: 1em;}
} }
>h1{ >h1{
margin: 0 0 0 $margin_left; margin: 0 0 0 $margin_left+($bullet_w/2);
} }
} }
@@ -101,7 +101,7 @@ h1.part{
// /_/ /_/ \___/\___/ // /_/ /_/ \___/\___/
section.enonce{ section.enonce{
width:450px; width:450px;
margin: 1em 0; margin: 1em 0 1em $margin_left;
overflow-x: visible; overflow-x: visible;
@include base_font; @include base_font;
// max-height:14px; // max-height:14px;
@@ -157,7 +157,7 @@ section.enonce{
// /_____/\____/\__/____/ // /_____/\____/\__/____/
h1.part{ h1.part{
margin:0 0 0 $margin_left; margin:1em 0 0 $margin_left+($bullet_w/2);
} }
.dot{ .dot{
@@ -208,6 +208,11 @@ h1.part{
margin-bottom:1em; margin-bottom:1em;
} }
} }
a{
color: inherit;
text-decoration: none;
font-weight: bold;
}
} }
&.to-links > section.text{ &.to-links > section.text{
border-top: 1px solid #e2e2e2; border-top: 1px solid #e2e2e2;
@@ -216,19 +221,19 @@ h1.part{
border-bottom: 1px solid #e2e2e2; border-bottom: 1px solid #e2e2e2;
} }
>aside.links{ >nav.links{
position:relative; position:relative;
left: $margin_left*2; left: $margin_left*2;
box-sizing: border-box; box-sizing: border-box;
&.to{ &.to{
bottom:100%; bottom:100%;
margin-top: 30px; margin-top: 15px;
padding-bottom:10px; padding-bottom:10px;
} }
&.from{ &.from{
top:100%; top:100%;
padding-top:10px; padding-top:10px;
margin-bottom: 30px; margin-bottom: 15px;
} }
&:before{ &:before{
@@ -241,7 +246,7 @@ h1.part{
} }
} }
&:hover, &.opened{ &:hover, &.opened, &.highlight{
// transform: translate3d(0.5em, 0, 0); // transform: translate3d(0.5em, 0, 0);
// transition: transform 0.1s ease-in-out; // transition: transform 0.1s ease-in-out;
>p.summary{ >p.summary{
@@ -259,6 +264,10 @@ h1.part{
color:grey; color:grey;
} }
&:not(.opened){
line-height: 0.7;
}
} }
+37 -20
View File
@@ -60,28 +60,14 @@ var _Dot = {
}, },
onbeforeupdate: function(vn){ onbeforeupdate: function(vn){
}, },
onupdate: function(vn){
// console.log('_Dot : onupdate', vn);
if(this.active){
if (this.opened){
vn.dom.classList.add('opened');
if(this.links.to.length)
vn.dom.classList.add('to-links');
}else{
vn.dom.classList.remove('opened');
if(this.links.from.length)
vn.dom.classList.add('from-links');
}
}
},
view: function(vn){ view: function(vn){
if (this.active && this.opened) { if (this.active && this.opened) {
// full view of dot with linked dots // full view of dot with linked dots
console.log('_Dot view '+this.id+' parents :',this.parents); // console.log('_Dot view '+this.id+' parents :',this.parents);
var dot_content = [ var dot_content = [
// links to // links to
this.links.to.length this.links.to.length
? m('aside', {'class':'links to'}, this.links.to.map(function(id){ ? m('nav', {'class':'links to'}, this.links.to.map(function(id){
// console.log(id); // console.log(id);
return m(_Dot, { return m(_Dot, {
"id":id, "id":id,
@@ -100,10 +86,27 @@ var _Dot = {
// bullet // bullet
m('span', {'class':'bullet'}, m.trust('⚫')), m('span', {'class':'bullet'}, m.trust('⚫')),
// full text // full text
m('section', {'class':'text'}, m.trust(this.text)), m('section', {
'class':'text',
onmouseover: function(e){
e.preventDefault();
if(e.target.nodeName == "A" ){
// console.log("over e.target", e.target);
// console.log('over vn', vn);
var id = e.target.getAttribute("href");
// add highlight class
vn.dom.querySelector('nav.links>div[uid="'+id+'"]').classList.add('highlight');
}else{
// remove all hilight class
for (link of vn.dom.querySelectorAll('nav.links>div.dot')) {
link.classList.remove('highlight');
}
}
}
}, m.trust(this.text)),
// links from // links from
this.links.from.length this.links.from.length
? m('aside', {'class':'links from'}, this.links.from.map(function(id){ ? m('nav', {'class':'links from'}, this.links.from.map(function(id){
// retrun a dot // retrun a dot
return m(_Dot, { return m(_Dot, {
"id":id, "id":id,
@@ -133,11 +136,25 @@ var _Dot = {
} }
return m('div',{ return m('div',{
'id':this.id, 'uid':this.id,
'class':'dot' 'class':'dot'
}, },
dot_content dot_content
); );
},
onupdate: function(vn){
// console.log('_Dot : onupdate', vn);
if(this.active){
if (this.opened){
vn.dom.classList.add('opened');
if(this.links.to.length)
vn.dom.classList.add('to-links');
if(this.links.from.length)
vn.dom.classList.add('from-links');
}else{
vn.dom.classList.remove('opened');
}
}
} }
} }
@@ -273,7 +290,7 @@ var _Part = {
// /_____/\____/\__/____/ // /_____/\____/\__/____/
module.exports = { module.exports = {
view: function(){ view: function(){
console.log('_Dots view', _dbs.lang); // console.log('_Dots view', _dbs.lang);
return [ return [
m(_Header), m(_Header),
m('main', {id:"content", 'class':'dots'}, _dbs.data[_dbs.lang].map(function(p){ m('main', {id:"content", 'class':'dots'}, _dbs.data[_dbs.lang].map(function(p){