Remove CSS & JS files from WordPress Main Page For Increase Pagespeed?

With the reference of https://stackoverflow.com/questions/12463304/wordpress-load-plugin-css-js-in-functions-php-w-conditional-tags answered by @maiorano84

i am using cforms, FancyBox, WP Page Numbers plugins for WordPress. From Page Speed point of view i want to remove CSS and JS of these plugin’s from all pages except single post page. I also want to put the JS scripts in the footer. below is the code i have been trying but no luck. Would any body help me please?

if ( !is_single() ) {
add_action( 'wp_print_styles', 'my_deregisters', 100 );
add_action( 'wp_print_scripts', 'my_deregisters', 100 );

    function my_deregisters() {
        remove_action('wp_head', 'wp_page_numbers_stylesheet');
        wp_deregister_style( 'fancybox' ); 
        wp_deregister_script( 'fancybox' ); 
        wp_dequeue_script('fancybox');      
        wp_dequeue_style('fancybox'); 
        remove_action('wp_print_scripts', 'mfbfw_load');
        remove_action('wp_print_styles', 'mfbfw_css');
        remove_action('wp_head', 'mfbfw_init');
        remove_action('wp_head', 'cforms_style');

        }

} else {  }

Solutions Collecting From Web of "Remove CSS & JS files from WordPress Main Page For Increase Pagespeed?"

Does it work any better added to a hook with the conditionals inside?

function my_deregisters() {

  if ( !is_single() ) {
   remove_action('wp_head', 'wp_page_numbers_stylesheet');
   //wp_deregister_style( 'fancybox' ); // i think this can be removed
   //wp_deregister_script( 'fancybox' ); // i think this can be removed
   wp_dequeue_script('fancybox');      
   wp_dequeue_style('fancybox'); 
   remove_action('wp_print_scripts', 'mfbfw_load');
   remove_action('wp_print_styles', 'mfbfw_css');
   remove_action('wp_head', 'mfbfw_init');
   remove_action('wp_head', 'cforms_style');
 }

} 
add_action( 'wp_enqueue_scripts', 'my_deregisters', 100 );