Pdf/BaladeNature/Js/balade_nature.js
author Patrick PIERRE
ven., 30 mai 2014 19:05:48 +0200
changeset 124 f0f5895259d9
parent 94 d8344a68c91f
child 125 dc7473e2d1af
permissions -rw-r--r--
Correction jsLint
patrick@17
     1
// $Id$
patrick@17
     2
// balade_nature
patrick@17
     3
Patrick@124
     4
/*global $: true */
Patrick@124
     5
/*global $$: true */
Patrick@124
     6
patrick@17
     7
var text = null;
patrick@17
     8
var spot = null;
patrick@17
     9
var box = null;
patrick@17
    10
var boxProperty = '';
patrick@17
    11
patrick@17
    12
patrick@17
    13
window.addEvent('domready', function(){
Patrick@74
    14
    // Hotspots
patrick@17
    15
    (function initialize() {
Patrick@74
    16
        $$(".pdocHotspot").each(function(hotspot) {
Patrick@124
    17
            var spot = $(hotspot.get('id') + "s");
patrick@94
    18
            var scenario = hotspot.getElement("span");
patrick@94
    19
            if (spot && scenario) {
Patrick@74
    20
                hotspot.addEvent("click", function() {
patrick@94
    21
                    var spot = $(this.get('id') + "s");
patrick@94
    22
                    if (spot.getChildren("img")) {
patrick@94
    23
                        spot.setStyles({"opacity": 1, "display": "block"});
patrick@94
    24
                    } else {
patrick@94
    25
                        spot.setStyles({"opacity": 0, "display": "block"});
patrick@94
    26
                        spot.tween("opacity", 1);
patrick@94
    27
                    }
Patrick@74
    28
                    this.setStyle("display", "none");
Patrick@74
    29
                    (function() {
patrick@94
    30
                        spot.setStyle("display", "none");
Patrick@74
    31
                        hotspot.setStyle("display", "block");
Patrick@74
    32
                    }).delay(12000);
Patrick@74
    33
                });
patrick@17
    34
patrick@94
    35
                spot.addEvent("click", function() {
Patrick@74
    36
                    this.setStyle("display", "none");
patrick@94
    37
                    $(this.get('id').substring(0, this.get('id').length-1))
Patrick@74
    38
                        .setStyle("display", "block");
Patrick@74
    39
                });
patrick@17
    40
            }
patrick@17
    41
        });
Patrick@74
    42
    }).delay(100);
patrick@17
    43
     
patrick@17
    44
    // Effect: glow
patrick@17
    45
    var effectGlow = $("effectGlow");
patrick@17
    46
    if (effectGlow) {
patrick@17
    47
        text = $("effectGlowText");
patrick@17
    48
        spot = $("effectGlowSpot");
patrick@17
    49
        box = $("effectGlowBox")
patrick@17
    50
        if (typeof box.style.webkitBoxShadow == 'string') {
patrick@17
    51
            boxProperty = 'webkitBoxShadow';
patrick@17
    52
        } else if (typeof box.style.MozBoxShadow == 'string') {
patrick@17
    53
            boxProperty = 'MozBoxShadow';
patrick@17
    54
        } else if (typeof box.style.boxShadow == 'string') {
patrick@17
    55
            boxProperty = 'boxShadow';
patrick@17
    56
        }
patrick@17
    57
patrick@17
    58
        if (text && spot && box) {
patrick@17
    59
            effectGlow.onmousemove = onMouseMove;
patrick@17
    60
            effectGlow.ontouchmove = function (e) {
patrick@17
    61
                e.preventDefault();
patrick@17
    62
                e.stopPropagation();
patrick@17
    63
                onMouseMove({clientX: e.touches[0].clientX, clientY: e.touches[0].clientY});
Patrick@124
    64
            };
patrick@17
    65
        }
patrick@17
    66
    }
patrick@17
    67
});
patrick@17
    68
patrick@17
    69
patrick@17
    70
function onMouseMove(e) {
patrick@17
    71
    if (typeof e === 'undefined' || typeof e.clientX === 'undefined') {
patrick@17
    72
        return;
patrick@17
    73
    }
patrick@17
    74
    
patrick@17
    75
    var xm = (e.clientX - Math.floor(window.innerWidth / 2)) * 0.4;
patrick@17
    76
    var ym = (e.clientY - Math.floor(window.innerHeight / 3)) * 0.4;
patrick@17
    77
    var d = Math.round(Math.sqrt(xm*xm + ym*ym) / 5);
patrick@17
    78
    text.style.textShadow = -xm + 'px ' + -ym + 'px ' + (d + 10) + 'px black';
patrick@17
    79
    
patrick@17
    80
    if (boxProperty) {
patrick@17
    81
        box.style[boxProperty] = '0 ' + -ym + 'px ' + (d + 30) + 'px black';
patrick@17
    82
    }
patrick@17
    83
    
patrick@17
    84
    xm = e.clientX - Math.floor(window.innerWidth / 2);
patrick@17
    85
    ym = e.clientY - Math.floor(window.innerHeight / 2);
patrick@17
    86
    spot.style.backgroundPosition = xm + 'px ' + ym + 'px';
patrick@17
    87
}
patrick@17
    88