GUI Components JavaScript DHTML

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    xmlns:x2="http://www.w3.org/TR/xhtml2"
    xmlns:role="http://www.w3.org/2005/01/wai-rdf/GUIRoleTaxonomy#"
    xmlns:state="http://www.w3.org/2005/07/aaa">

Yahoo! UI Library - Slider Widget


  .dragPanel { 
    position: absolute;
    background-color: #eeeeee;
    top: 200px;
    left: 20px;
    width: 320px;
    height: 180px;
  }
  .dragPanel h4 { 
    background-color: #bbbbbb;
    height: 10px;
        margin: 0px;
    cursor: move;
  }
  input { font-size: 85%}
  .thumb { 
    cursor:default;
    width:18px; 
    height:18px; 
    z-index: 9;
    position: absolute; 
        left: 0px;
  }
  .bg {
    position:absolute; 
    left:10px; 
    height:18px; 
    width:146px; 
    border: 0px solid #aaaaaa;
  }
  
  .bg span, .bg p {
    cursor:default;
    position: relative;
    font-size: 2px;
    overflow: hidden;
    color: #aaaaaa;
    top: 4px;
    height: 10px;
    width: 4px;
    display: block;
    float:left;
  }
  .bg span {
    border-top:1px solid #cccccc;
    border-bottom:1px solid #cccccc;
  }
  .bg .lb {
    border-left:1px solid #cccccc;
  }
  .bg .rb {
    border-right:1px solid #cccccc;
  }
  #valdiv { position:absolute; top: 100px; left:10px; } 
  #rBG {top:30px}
  #gBG {top:50px}
  #bBG {top:70px}
  #swatch {
    position:absolute; 
    left:160px; 
    top:34px;
    height:50px; 
    width:50px; 
    border:1px solid #aaaaaa;
  }











 

Slider Widget

 

  
    

  
    

    #logButtonHeader input { font-size: 80% }
/* logger default styles */
/* font size is controlled here: default 77% */
#yui-log {position:absolute;top:1em;right:1em;font-size:77%;text-align:left;}
/* width is controlled here: default 31em */
.yui-log {background-color:#AAA;border:1px solid black;font-family:monospace;z-index:9000;}
.yui-log p {margin:1px;padding:.1em;}
.yui-log button {font-family:monospace;}
.yui-log .yui-log-hd {padding:.5em;background-color:#575757;color:#FFF;}
/* height is controlled here: default 20em*/
.yui-log .yui-log-bd {width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;}
.yui-log .yui-log-ft {margin-top:.5em;margin-bottom:1em;}
.yui-log .yui-log-ft .yui-log-categoryfilters {}
.yui-log .yui-log-ft .yui-log-sourcefilters {width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;}
.yui-log .yui-log-btns {position:relative;float:right;bottom:.25em;}
.yui-log .yui-log-filtergrp {margin-right:.5em;}
.yui-log .info {background-color:#A7CC25;} /* A7CC25 green */
.yui-log .warn {background-color:#F58516;} /* F58516 orange */
.yui-log .error {background-color:#E32F0B;} /* E32F0B red */
.yui-log .time {background-color:#A6C9D7;} /* A6C9D7 blue */
.yui-log .window {background-color:#F2E886;} /* F2E886 tan */


  
    
    YAHOO.example.logApp = function() {
        return {
            init: function() {
                if (YAHOO.widget.Logger) {
                    var reader = new YAHOO.widget.LogReader( "logDiv", 
                            { newestOnTop: true, height: "400px" } );
                    reader._onClickPauseBtn(null, reader);
                }
            }
        };
    } (); 
    YAHOO.util.Event.on(window, "load", YAHOO.example.logApp.init);
    
    

  


 
     
       
      

RGB Slider


        


        The RGB slider implements three slider controls to generate a
        RGB color.  The background color of each slider is also
        dynamically modified to reflect the colors that could be
        generated by moving a single slider.
        


The logger is paused for performance reasons.  Click "Resume" to re-enable it.
       
     
      
    
  


   
  
     
   
  
     
   
  
     
   
  
    
    
    
    
    RGB
    
    
    
    
    
    
    
    
    
    
    
    
    Hex: #
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  
   
  

  var r, g, b;
  var dd;
  function init() {
        rgbInit();
    }
  function rgbInit() {
    r = YAHOO.widget.Slider.getHorizSlider("rBG", "rthumb", 0, 128);
    r.onChange = function(newVal) { listenerUpdate("r", newVal*2); };
    g = YAHOO.widget.Slider.getHorizSlider("gBG", "gthumb", 0, 128);
    g.onChange = function(newVal) { listenerUpdate("g", newVal*2); };
    b = YAHOO.widget.Slider.getHorizSlider("bBG", "bthumb", 0, 128);
    b.onChange = function(newVal) { listenerUpdate("b", newVal*2); };
    initColor();
    dd = new YAHOO.util.DD("ddRGB");
    dd.setHandleElId("pickerHandle");
  }
  window.onload = init;
  function initColor() {
    var ch = " ";
    d = document.createElement("P");
    d.className = "rb";
    r.getEl().appendChild(d);
    d = document.createElement("P");
    d.className = "rb";
    g.getEl().appendChild(d);
    d = document.createElement("P");
    d.className = "rb";
    b.getEl().appendChild(d);
    for (var i=0; i<34; i++) {
      d = document.createElement("SPAN");
      d.id = "rBG" + i
      // d.innerHTML = ch;
      r.getEl().appendChild(d);
      d = document.createElement("SPAN");
      d.id = "gBG" + i
      // d.innerHTML = ch;
      g.getEl().appendChild(d);
      d = document.createElement("SPAN");
      d.id = "bBG" + i
      // d.innerHTML = ch;
      b.getEl().appendChild(d);
    }
    d = document.createElement("P");
    d.className = "lb";
    r.getEl().appendChild(d);
    d = document.createElement("P");
    d.className = "lb";
    g.getEl().appendChild(d);
    d = document.createElement("P");
    d.className = "lb";
    b.getEl().appendChild(d);
    userUpdate();
  }
  function updateSliderColors() {
    var curr, curg, curb;
    curr = Math.min(r.getValue() * 2, 255);
    curg = Math.min(g.getValue() * 2, 255);
    curb = Math.min(b.getValue() * 2, 255);
        YAHOO.log("updateSliderColor " + curr + ", " + curg + ", " + curb);
    var d;
    for (var i=0; i<34; i++) {
      d = document.getElementById("rBG" + i);
      d.style.backgroundColor = 
        "rgb(" + (i*8) + "," + curg + "," + curb + ")";
      d = document.getElementById("gBG" + i);
      d.style.backgroundColor = 
        "rgb(" + curr + "," + (i*8) + "," + curb + ")";
      d = document.getElementById("bBG" + i);
      d.style.backgroundColor = 
        "rgb(" + curr + "," + curg + "," + (i*8) + ")";
    }
    document.getElementById("swatch").style.backgroundColor =
      "rgb(" + curr + "," + curg + "," + curb + ")";
    document.getElementById("hexval").value = 
          YAHOO.util.Color.rgb2hex(curr, curg, curb);
  }
  function listenerUpdate(whichSlider, newVal) {
    if (newVal == 256) {
      newVal = 255;
    }
    document.getElementById(whichSlider + "val").value = newVal;
    updateSliderColors();
  }
  function userUpdate(isHex) {
    var v;
    var f = document.forms['rgbform'];
    if (isHex) {
      var hexval = f["hexval"].value;
      // shorthand #369
      if (hexval.length == 3) {
        var newval = "";
        for (var i=0;i<3;i++) {
          var a = hexval.substr(i, 1);
          newval += a + a;
        }
        hexval = newval;
      }
      YAHOO.log("hexval:" + hexval);
      if (hexval.length != 6) {
        alert("illegal hex code: " + hexval);
      } else {
        var rgb = YAHOO.util.Color.hex2rgb(hexval);
        // alert(rgb.toString());
        if (YAHOO.util.Color.isValidRGB(rgb)) {
          f['rval'].value = rgb[0];
          f['gval'].value = rgb[1];
          f['bval'].value = rgb[2];
        }
      }
    }
    // red
    v = parseFloat(f['rval'].value);
    v = ( isNaN(v) ) ? 0 : Math.round(v);
        YAHOO.log("setValue, r: " + v);
    r.setValue(Math.round(v) / 2);
    v = parseFloat(f['gval'].value);
    v = ( isNaN(v) ) ? 0 : Math.round(v);
        YAHOO.log("setValue, g: " + g);
    g.setValue(Math.round(v) / 2);
    v = parseFloat(f['bval'].value);
    v = ( isNaN(v) ) ? 0 : Math.round(v);
        YAHOO.log("setValue, b: " + b);
    b.setValue(Math.round(v) / 2);
    updateSliderColors();
    return false;
  }
  function userReset() {
    var v;
    var f = document.forms['rgbform'];
    r.setValue(0);
    g.setValue(0);
    b.setValue(0);
  }



           
       
yui.zip( 3,714 k)